1. Field of the Invention
The present invention relates generally to EVolution-Data Optimized (EVDO) and its evolved communication systems, and in particular, to a system and method for reducing parameter negotiation cycles in EVDO which uses Generic Configuration Protocol to negotiate session parameters (attributes).
2. Description of the Related Art
The EVDO communication system consists of several protocols and applications that define the procedures to be followed by the Access Network (AN) and the Access Terminal (AT) to communicate with each other. Each protocol/application has several subtypes, wherein a subtype defines a distinct procedure to be used for the operation of that protocol/application. Each subtype contains several configurable attributes which govern its operation. The EVDO communication system is a procedure for negotiating and configuring the protocol/application subtypes and their corresponding attributes between the AT and AN. Configuration Request and Configuration Response messages are exchanged between the AT and AN, according to the generic configuration protocol, to negotiate protocol/application subtypes and their corresponding attributes.
The set of negotiated and configured protocol/application subtypes and the corresponding attributes constitutes an EVDO session. In other words, an EVDO session refers to a shared state between the AT and the AN. This shared state stores the protocols/applications and the protocol/application configurations that were negotiated and are used for communications between the AT and the AN. Session Configuration Protocol (SCP) defines the procedure to negotiate and configure multiple EVDO sessions.
During the session negotiation, protocols/applications use a Configuration Request message and a Configuration Response message to negotiate a mutually acceptable configuration. The initiator uses the Configuration Request message to provide the responder with a list of acceptable attribute values for each attribute. The responder uses the Configuration Response message to provide the initiator with the accepted attribute value for each attribute, choosing the accepted attribute value from the initiator's acceptable attribute value list. If none of the values received in the attribute list for an attribute are acceptable, then the responder will not sent any value for this attribute in the Configuration Response message. Both the AT and AN will continue to use the fall-back or default value for this attribute. The attribute negotiation between AT and AN is performed for various protocols and applications in the following two stages: Stage 1, which is an AT initiated parameter negotiation; and Stage 2, which is an AN initiated parameter negotiation.
The format of the Configuration Request and Configuration Response message used by the AT and AN during the parameter negotiation is shown in FIG. 1.
The descriptions of the fields of Configuration Request and Configuration Response message are as follows:
MessageID: The sender sets this field to 0x50 for Configuration Request Message. The sender sets this field to 0x51 for Configuration Response Message.
TransactionID: The sender increments this value for each new ConfigurationRequest message sent. The sender sets this value to the TransactionID field of the corresponding ConfigurationRequest message while sending Configuration Response message.
AttributeRecord: The attribute record defines a set of suggested values for a given attribute. The attribute record format is defined, such that if the recipient does not recognize the attribute, it can discard it and parse attribute records that follow this record. An attribute is one of the following three types: A Simple attribute, which contains a single value, an Attribute list, which contains multiple single values that are interpreted as different suggested values for the same attribute identifier, or a Complex attribute, which contains multiple values that together form a complex value for a particular attribute identifier
Simple attributes are a special type of attribute list containing a single value. The type of the attribute is determined by the attribute identifier.
The sender of a ConfigurationResponse message selects an attribute-value from a ConfigurationRequest message by sending the attribute value if it is a simple attribute or a selected value out of an attribute list. Selection of complex-attributes is performed by sending the value identifier which identifies the complex value. If none of the values received in the attribute list for an attribute are acceptable, then the responder will not send any value for this attribute in the Configuration Response message.
The format of a simple attribute and complex attribute is shown in FIG. 2.
The descriptions of the fields of attribute record are as follows:
Simple Attribute Record:
Length: Length in octets of the attribute record, excluding the Length field.
AttributeID: Attribute identifiers are unique in the context of the protocol being configured.
AttributeValue: A suggested value for the attribute. Attribute value lengths are, in general, an integer number of octets. Attribute values have an explicit or implicit length indication (e.g., fixed length or null terminated strings) so that the recipient can successfully parse the record when more than one value is provided.
Reserved: The length of this field is the smallest value that will make the attribute record octet aligned. The sender sets this field to zero, while the receiver ignores this field.
Complex Attribute Record:
Length: Length in octets of the attribute record, excluding the Length field.
AttributeID: Attribute identifiers are unique in the context of the protocol being configured.
ValueID: It identifies the set of attribute values following this field. The sender increments this field for each new set of values for this complex attribute.
AttributeValue: A suggested value for the attribute. Attribute value lengths are in general an integer number of octets. Attribute values have an explicit or implicit length indication (e.g., fixed length or null terminated strings) so that the recipient can successfully parse the record when more than one value is provided.
Reserved: The length of this field is the smallest value that will make the attribute record octet aligned. The sender sets this field to zero, while the receiver ignores this field.
Limitations
In the AT initiated parameter negotiation, while sending ConfigurationResponse message, the AN has to select an attribute-value for an attribute ID from a ConfigurationRequest message received from the AT, by sending the selected attribute value from the received attribute list corresponding to the attribute ID. If the values received in the attribute list for an attribute ID are not acceptable, then the following occurs:
The AN has to send a configuration response message without any selected value for the attribute ID. Also, the AN is not allowed to send any other attribute value (other than the values received in the attribute list) which it supports for the attribute ID. This will trigger an initiation of configuration of the same attribute ID in AN initiated parameter negotiation leading to increase in session negotiation time.
1. In the AN initiated parameter negotiation while sending ConfigurationResponse message, the AT has to select an attribute-value for an attribute ID from a ConfigurationRequest message received from the AT, by sending the selected attribute value from the received attribute list corresponding to the attribute ID. If the values received in the attribute list for an attribute ID are not acceptable, then the following occurs:
The AT has to send a configuration response message without any selected value for the attribute ID. Also, the AT is not allowed to send any other attribute value (other than the values received in the attribute list) which it supports for the attribute ID.
This may trigger a new session negotiation cycle leading to an increase in session negotiation time if the AT needs to negotiate any attributes as a result of some attribute value change in the AN initiated state.
Accordingly, there is need in the art for techniques that allow the responder (sender of Configuration Response message) to send its preferred value to the initiator (sender of Configuration Request message), if the responder's preferred value is not received in the Configuration Request message and is allowed to do so.